package main

import (
	"fmt"
	"strconv"
)

// 函数声明
// 在 Go 里，大写字母开头的函数、变量或其它标识符都会被导出，对其它包可用。
// 小写字母开头的就不行
func main() {
	celsius := funcName(12, false)
	fmt.Println(celsius)
}

// 使用 func 关键字声明函数

// func 关键字
// funcName 函数名
// num 形参 int 形参num的类型
// flag 形参 bool 形参flag的类型
// string 函数返回值类型
// 类似于java  但是类型是放在后面的
func funcName(num int, flag bool) string {
	if flag {
		return strconv.Itoa(num)
	} else {
		return "0.0"
	}
}

// 如果多个形参类型相同，那么该类型只写一次即可
// func Unix(sec int64, nsec int64) Time
// func Unix(sec, nsec int64) Time

// Go 的函数可以返回多个值：
// countdown, err := strconv.Atoi("10")
// 该函数的声明如下：
// func Atoi(s string) (i int, err error)

// 函数的多个返回值需要用括号括起来，每个返回值名字在前，类型在后。声明函数时可以把名字去掉，只保留类型：
// func Atoi(s string) (int, error)
